package com.mkj.listener;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ContainerEvent;
import java.awt.event.ContainerListener;

/**
 * @Author Arrebol
 * @Date 2024/8/4 12:32
 * @Project graphical programming
 * @Description： 事件监听器演示
 */
public class ListenDemo1 {
    public static void main(String[] args) {
        Frame frame = new Frame("这里测试事件监听器");
        //创建组件（事件源）
        TextField textField = new TextField(30);
        Choice names = new Choice();
        names.add("张三");
        names.add("李四");
        names.add("王五");
        //给文本域添加TextListener监听内容变化
        textField.addTextListener(e -> System.out.println("当前文本框中的内容为：" + textField.getText()));
        //给下拉选项框添加ItemListener，监听条目选项变化
        names.addItemListener(e -> System.out.println("当前选中的条目为：" + e.getItem().toString()));
        //给Frame注册ContainerListener监听器，监听容器中组件的添加
        frame.addContainerListener(new ContainerListener() {
            @Override
            public void componentAdded(ContainerEvent e) {
                Component child = e.getChild();
                System.out.println("Frame中添加了：" + child);
            }

            @Override
            public void componentRemoved(ContainerEvent e) {
            }
        });
        //组件添加到Frame中
        Box hBox = Box.createHorizontalBox();
        hBox.add(names);
        hBox.add(textField);
        frame.add(hBox);
        frame.pack();
        frame.setVisible(true);
    }
}
